#ifndef SYSTEMLOGGER_H_
#define SYSTEMLOGGER_H_

#include "global.h"

class SystemLogger
{
public:
	static const uint8 LOG_LEVEL_ERROR 		= 1;
	static const uint8 LOG_LEVEL_WARN	 	= 2;
	static const uint8 LOG_LEVEL_INFO 		= 3;
	static const uint8 LOG_LEVEL_DEBUG		= 4;
	
public:
	static void SetLevel(uint8 iLevel);
	
	void LogDebug(const char* szFormatString, ...);
	
	void LogInfo(const char* szFormatString, ...);
	
	void LogWarn(const char* szFormatString, ...);
	
	void LogError(const char* szFormatString, ...);
	
	virtual ~SystemLogger();
	
protected:
	static const uint32 MAX_LINE_LENGTH = 255;	
	static uint8 m_iLevel;
	
protected:
	SystemLogger();
	
	virtual void Log(char *szMessage) = 0;
};

#endif /*SYSTEMLOGGER_H_*/
